<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        /* 
           1、undefined 和 null的区别
              undefined表示定义了但是未赋值, 代表定义并赋值为null
              
           2、什么时候用null
              初始赋值表明将要赋值为对象
              指向的对象成为垃圾对象(被垃圾回收器回收)

           3、严格区分数据类型和变量类型
              数据的类型: 基本类型、对象类型
              变量类型(变量内存值的类型): 基本类型(保存的基本数据)、引用类型(保存的是地址值)
            
            
         */
        const a = nul // 赋初始值为null, 表明将要赋值为对象
        a = [1,2,3,4] // 确定对象就赋值
        a = null // 让a指向的对象成为垃圾对象(被垃圾回收器回收)

        const b = {}  // b存在栈里面保存的'{}'的地址值, '{}'存在堆里面保存

        const c = function () { 

        };
        console.log(typeof c)  // 'function'
    </script>
</body>
</html>